# 被定义在引号中的数据，称为字符串

data_01 = ""
data_02 = "linux"
data_03 = "python"

print(type(data_01) , type(data_02), type(data_03))

#原始字符串，避免特殊字符被转义 ，通常会在引号前加个r
data_04 = r"D:\newdir\test\logo.jpg"
print(data_04)

#字符串常用操作
# 1， + 拼接
print("Ab" + "Cd")

# 2, * 重复
print("-----------" * 8)

# 3, 获取长度  len()
data_05 = "python"
print(len(data_05))

# 4, 判读字符串的包含关系   in ，not in
print("th" in "python")
print("lin" not in data_05)

# 5, 索引， 根据下标取值； 左：0， 右：-1
data_06 = "python"
print(data_06[0])
print(data_06[3])
print(data_06[-1])
print(data_06[-3])

# 6， 切片 字符串[起始下标:终止下标]， 字符串[起始下标:终止下标:步长]
data_07 = "python"
print(data_07[0:6])
print(data_07[-6:])
print(data_07[4:])
# 倒置
print(data_07[::-1])

print("--------------" * 7)

#字符串对象常用操作方法

# 1， 转换大小写
data_08 = "pYthOn"
print(data_08.capitalize())    # 开头字母大写
print(data_08.upper())  # 全部字母大写
print(data_08.lower()) # 全部字母小写

# 2， 判断字符串的开头，结尾
print("abcd".endswith("cd"))  # 是否以cd结尾
print("abcd".startswith("a")) # 是否以a开头

# 3， 去除字符串左，右两侧的空白
data_09 = "                   abcd                 "
print(data_09.strip())     # 去除所有两侧的全部空格
print(data_09.lstrip())    # 去除左侧的空格
print(data_09.rstrip())    # 去除右侧的空格

# 4， 字符串替换
file_name = "/etc/fstab"
print(file_name.replace("etc","mnt"))
print(file_name.replace("t","A", 1))
# 分割字符串
data_10 = "docker k8s    linux     python"
print(data_10.split())    #以空格分割 将整个data_10里面的变量存到一个列表中
print(data_10.split()[0])     #取列表中的第一个值

data_11 = "192.168.1.128"
print(data_11.split("."))   # 以 . 分割 将整个data_11里面的变量存到一个列表中
print(data_11.split(".")[1])
print(type(data_11.split(".")[1]))    # 分割出来的结果为字符串类型，并非整型
print(data_11.split(".")[1] + "200")
print(int(data_11.split(".")[1]) + 200)

# 6, 判断字符串的组成
print("abcd".islower())  # 判断字符串是否为小写字母
print("AbcD".isupper())  # 判断字符串是否为大写字母
print("36534".isdigit()) # 判断字符串是否为纯数字
print("adf799A".isalnum()) #判断字符串是否为数字或者字母
print("adfA".isalnum()) #判断字符串是否为数字或者字母

# 遍历字符串
data_12 = "python"
for i in data_12:
    print("---->%s" % i)
print("--------------" * 7)

# 删除字符串间的空白
data_13 = "a c d b py thon"
data_14 = ""
for i in data_13:
    if i != " ":
        data_14 = data_14 + i
print(data_14)

for i, j in enumerate("abcd"):
    print(i, j)
"""
enumerate()函数会返回一个枚举对象，
其中包含了字符串中每个字符的索引和对应的字符本身。
在这个例子中，i表示字符的索引，j表示字符本身。
print(i, j)语句会在每次循环时打印出当前字符的索引和字符本身。
"""


